home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 November: Tool Chest / Dev.CD Nov 00 TC Disk 1.toast / Sample Code / Archive / Graphics / QuickDraw GX / GX->PostScript Sample / GXToPostScript / Font Handler / FHResources.r < prev    next >
Encoding:
C/C++ Source or Header  |  2000-09-28  |  11.8 KB  |  339 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        FHResources.r
  3.  
  4.      Contains:    QuickDraw GX to PostScript conversion code.
  5.                          this file contains the PostScript resources of the font handler
  6.  
  7.      Version:    Technology:    Quickdraw GX 1.1.x
  8.       
  9.      Copyright:    © 1990-1998 by Apple Computer, Inc., all rights reserved.
  10. */
  11.  
  12. #include <Types.r>
  13. #include <DatabaseAccess.r>
  14.  
  15. #include "GXToPSBuildConfig.h"
  16. #include "PSProcSetIDs.h"
  17. #include "FHResources.h"
  18.  
  19. /*** product names of printers that can't handle all fonts. ***/
  20.  
  21. resource 'STR#' (kFHPrintersThatCantDoAllFonts, sysHeap, purgeable) {
  22.     {
  23.         "LaserWriter II NTX-J";
  24.         "LaserWriter II NTX";
  25.     }
  26. };
  27.  
  28. #if DOWNLOADTRUETYPESCALER
  29.     /* include the actual scaler resources */
  30.  
  31.     /* these start at kPrinterClient ( -28269:-28264 ) -- see make file */
  32.     #include "openscaler_encrypt.rsrc"
  33.  
  34.     /* these at kPrinterClient + 6 ( -28263:-28262 ) */
  35.     #include "initer_encrypt.rsrc"
  36.  
  37.     /* these at kPrinterClient + 8 ( -28261:-28255 ) */
  38.     #include "render_encrypt.rsrc"
  39.  
  40.     /* these at kPrinterClient + 15 ( -28254:-28248 ) */
  41.     #include "bander_encrypt.rsrc"
  42. #endif
  43.  
  44.  
  45. /* the last one goes to kPrinterClient + 23 */
  46.  
  47. #if USECONTROLRESOURCES 
  48.     /** Proc set control resource for when we are not downloading scaler **/
  49.  
  50.     resource kControlResType (kFHControlResId, sysHeap, purgeable) {
  51.  
  52.         "GXFontDict",        // dict name
  53.         0x00010000,            // version
  54.         0,                            // revision
  55.         2 * 1024,                // vmusage
  56.  
  57.         {
  58.             kFHProcCopyRightNoticeID, dumpwidestring;
  59.             kFHStartProcID,                        dumpwidestring;
  60.             kFHStartProcID + 1,                dumpwidestring;
  61.         };
  62.     };
  63.  
  64.     /** Proc set control resource for when we must download scaler (hex) **/
  65.  
  66.     resource kControlResType (kFHControlResId + 1, sysHeap, purgeable) {
  67.  
  68.         "GXFontDict With TrueDict",            // dict name
  69.         0x00640000,            // version
  70.         0,                            // revision
  71.         99 * 1024,            // vmusage
  72.  
  73.         {
  74.             kFHProcCopyRightNoticeID, dumpwidestring;
  75.             kFHStartProcID,                        dumpwidestring;
  76.             kFHStartProcID + 1,                dumpwidestring;
  77.             kFHStartProcID + 2,                dumpwidestring;
  78.             
  79.             kFHStartProcID + 3,                dumpwidestring;
  80.             kPrinterClient,                        dumpwidestring + converttohex;            /* openscaler */
  81.             kPrinterClient+1,                    dumpwidestring + converttohex;            /* openscaler */
  82.             kPrinterClient+2,                    dumpwidestring + converttohex;            /* openscaler */
  83.             kPrinterClient+3,                    dumpwidestring + converttohex;            /* openscaler */
  84.             kPrinterClient+4,                    dumpwidestring + converttohex;            /* openscaler */
  85.             kPrinterClient+5,                    dumpwidestring + converttohex;            /* openscaler */
  86.             kFHStartProcID + 8,                dumpwidestring;
  87.  
  88.             kFHStartProcID + 5,                dumpwidestring;
  89.             kPrinterClient+6,                    dumpwidestring + converttohex;            /* initer */
  90.             kPrinterClient+7,                    dumpwidestring + converttohex;            /* initer */
  91.             kFHStartProcID + 8,                dumpwidestring;
  92.  
  93.             kFHStartProcID + 6,                dumpwidestring;
  94.             kPrinterClient+8,                    dumpwidestring + converttohex;            /* render */
  95.             kPrinterClient+9,                    dumpwidestring + converttohex;            /* render */
  96.             kPrinterClient+10,                dumpwidestring + converttohex;            /* render */
  97.             kPrinterClient+11,                dumpwidestring + converttohex;            /* render */
  98.             kPrinterClient+12,                dumpwidestring + converttohex;            /* render */
  99.             kPrinterClient+13,                dumpwidestring + converttohex;            /* render */
  100.             kPrinterClient+14,                dumpwidestring + converttohex;            /* render */
  101.             kFHStartProcID + 8,                dumpwidestring;
  102.  
  103.             kFHStartProcID + 7,                dumpwidestring;
  104.             kPrinterClient+15,                dumpwidestring + converttohex;            /* bander */
  105.             kPrinterClient+16,                dumpwidestring + converttohex;            /* bander */
  106.             kPrinterClient+17,                dumpwidestring + converttohex;            /* bander */
  107.             kPrinterClient+18,                dumpwidestring + converttohex;            /* bander */
  108.             kPrinterClient+19,                dumpwidestring + converttohex;            /* bander */
  109.             kPrinterClient+20,                dumpwidestring + converttohex;            /* bander */
  110.             kPrinterClient+21,                dumpwidestring + converttohex;            /* bander */
  111.             kFHStartProcID + 8,                dumpwidestring;
  112.  
  113.             kFHStartProcID + 4,                dumpwidestring;                                            /* open scaler call */
  114.             kFHStartProcID + 9,                dumpwidestring;
  115.         };
  116.     };
  117.  
  118.     /** Proc set control resource for when we must download scaler (binary) **/
  119.  
  120.     resource kControlResType (kFHControlResId + 2, sysHeap, purgeable) {
  121.  
  122.         "GXFontDict With TrueDict",            // dict name
  123.         0x001E0000,            // version
  124.         0,                            // revision
  125.         99 * 1024,            // vmusage
  126.  
  127.         {
  128.             kFHProcCopyRightNoticeID, dumpwidestring;
  129.             kFHStartProcID,                        dumpwidestring;
  130.             kFHStartProcID + 1,                dumpwidestring;
  131.             kFHStartProcID + 2,                dumpwidestring;
  132.             
  133.             kFHStartProcID + 3,                dumpwidestring;
  134.             kPrinterClient,                        dumpwidestring;            /* openscaler */
  135.             kPrinterClient+1,                    dumpwidestring;            /* openscaler */
  136.             kPrinterClient+2,                    dumpwidestring;            /* openscaler */
  137.             kPrinterClient+3,                    dumpwidestring;            /* openscaler */
  138.             kPrinterClient+4,                    dumpwidestring;            /* openscaler */
  139.             kPrinterClient+5,                    dumpwidestring;            /* openscaler */
  140.             kFHStartProcID + 8,                dumpwidestring;
  141.  
  142.             kFHStartProcID + 5,                dumpwidestring;
  143.             kPrinterClient+6,                    dumpwidestring;            /* initer */
  144.             kPrinterClient+7,                    dumpwidestring;            /* initer */
  145.             kFHStartProcID + 8,                dumpwidestring;
  146.  
  147.             kFHStartProcID + 6,                dumpwidestring;
  148.             kPrinterClient+8,                    dumpwidestring;            /* render */
  149.             kPrinterClient+9,                    dumpwidestring;            /* render */
  150.             kPrinterClient+10,                dumpwidestring;            /* render */
  151.             kPrinterClient+11,                dumpwidestring;            /* render */
  152.             kPrinterClient+12,                dumpwidestring;            /* render */
  153.             kPrinterClient+13,                dumpwidestring;            /* render */
  154.             kPrinterClient+14,                dumpwidestring;            /* render */
  155.             kFHStartProcID + 8,                dumpwidestring;
  156.  
  157.             kFHStartProcID + 7,                dumpwidestring;
  158.             kPrinterClient+15,                dumpwidestring;            /* bander */
  159.             kPrinterClient+16,                dumpwidestring;            /* bander */
  160.             kPrinterClient+17,                dumpwidestring;            /* bander */
  161.             kPrinterClient+18,                dumpwidestring;            /* bander */
  162.             kPrinterClient+19,                dumpwidestring;            /* bander */
  163.             kPrinterClient+20,                dumpwidestring;            /* bander */
  164.             kPrinterClient+21,                dumpwidestring;            /* bander */
  165.             kFHStartProcID + 8,                dumpwidestring;
  166.  
  167.             kFHStartProcID + 4,                dumpwidestring;                                            /* open scaler call */
  168.             kFHStartProcID + 9,                dumpwidestring;
  169.         };
  170.     };
  171.  
  172. #endif
  173.  
  174. resource 'wstr' (kFHProcCopyRightNoticeID, sysHeap, purgeable) {
  175.  
  176.     "%%CreationDate: Wednesday July 28, 1993 (12:00 AM)\n"
  177.     "%%Copyright: ((C) Apple Computer Inc. 1983-1994)\n"    
  178.     "userdict begin /GXFontDict 20 dict def end\n"
  179.     "userdict /GXFontDict get begin\n"
  180. };
  181.  
  182. resource 'wstr' (kFHStartProcID + 1, sysHeap, purgeable) {
  183.  
  184.     "currentdict end        %-- Definition of GXFontDict\n"
  185. };
  186.  
  187. #if DOWNLOADTRUETYPESCALER
  188.     resource kBinaryResType (kFHStartProcID + 2, sysHeap, purgeable) {
  189.  
  190.         "%%BeginProcSet: \"(AppleDict TrueDict)\" 100 0\n"
  191.             "userdict begin\n"
  192.                 "userdict/patchOK known not"
  193.                     "{save "
  194.                             "false <1861AEDAE118A9F95F1629C0137F8FE656811DD93DFBEA65E947502E78BA12284B8A58EF0A32E272778DAA2ABEC72A84102D591E11D96BA61F57877B895A752D9BEAAC3DFD7D3220E2BDE7C036467464E0E836748F1DE7AB6216866F130CE7CFCEC8CE050B870C11881EE3E9D70919>"
  195.                             "{eexec}stopped{dup type/stringtype eq{pop}if}if exch "
  196.                         "restore "
  197.                         "userdict/patchOK 3 -1 roll put"
  198.                     "}if\n"
  199.                 "userdict/downloadOK known not"
  200.                     "{"
  201.                         "vmstatus exch sub exch pop 120000 gt patchOK and "
  202.                         "userdict/downloadOK 3 -1 roll put"
  203.                     "}if\n"
  204.                 "userdict/type42known known not"
  205.                     "{userdict/type42known "
  206.                         "systemdict/resourcestatus known"
  207.                         "{42/FontType resourcestatus"
  208.                             "{pop pop true}"
  209.                             "{false}ifelse"
  210.                         "}{false}ifelse "
  211.                         "put"
  212.                     "}if\n"
  213.             "userdict/fcheckload known not{"
  214.             "/fcheckload{{pop exec}"
  215.                        "{save 3 dict begin"
  216.                             "/mystring 65534 string def "
  217.                             "exch/endstring exch def"
  218.                                 "{currentfile mystring readline not"
  219.                                     "{stop}if "
  220.                                 "endstring eq{exit}if}loop end "
  221.                         "restore}ifelse"
  222.                       "}bind def"
  223.                 "}if\n"
  224.             "end\n"
  225.             "type42known not downloadOK and"
  226.             "{userdict begin\n"
  227.             "userdict/charpathflag known not{"
  228.                 "userdict begin"
  229.                     "/*charpath /charpath load def"                        /* get the current charpath */
  230.                     "/charpathflag false def"                                    /* initialize the flag         */
  231.                     "/charpath{"
  232.                         "userdict/charpathflag true put "                /* turn the flag on         */
  233.                         "userdict/*charpath get exec "                    /* chain off to the other     */
  234.                         "userdict/charpathflag false put"                /* turn the flag off        */
  235.                     "}bind def "
  236.                 "end}if\n"
  237.                 "userdict/TrueDict known not"
  238.                 "{"
  239.                     "/TrueDict 13 dict def"
  240.                 "}"
  241.                 "{"
  242.                     "TrueDict maxlength 9 lt"
  243.                     "{"
  244.                         "/TrueDict 13 dict def"
  245.                     "}if"
  246.                 "}ifelse\n"
  247.                 "TrueDict begin\n"
  248.                     "TrueDict/getVariations known not{"
  249.                         "/getVariations{currentfont dup"
  250.                                 "/Variations known"
  251.                                     "{/Variations get}{pop ()}ifelse"            /* used to put empty array instead of string */
  252.                             "}bind def"
  253.                         "}if\n"
  254.                     "TrueDict/writingmode known not{"
  255.                         "/writingmode{ currentfont dup"
  256.                                 "/WMode known"
  257.                                     "{/WMode get}{pop 0}ifelse"
  258.                             "} bind def"
  259.                     "}if\n"
  260.                     "currentdict/version 100 put "
  261.                 "end"
  262.             "}if\n"
  263.     };
  264.  
  265.     resource kBinaryResType (kFHStartProcID + 3, sysHeap, purgeable) {
  266.  
  267.         "userdict/TrueDict known{TrueDict/version get 100 eq{TrueDict/openscaler known not}{false}ifelse}{false}ifelse\n"
  268.         "{currentfile eexec}exch( %endeexec)exch fcheckload\n"
  269.     };
  270.     resource kBinaryResType (kFHStartProcID + 4, sysHeap, purgeable) {
  271.  
  272.         "userdict/TrueDict known{TrueDict/openscaler known{TrueDict/scalerstate known not{TrueDict dup/openscaler get exec/scalerstate exch put}if}if}if\n"
  273.     };
  274.     resource kBinaryResType (kFHStartProcID + 5, sysHeap, purgeable) {
  275.  
  276.         "userdict/TrueDict known{TrueDict/version get 100 eq{TrueDict/initer known not}{false}ifelse}{false}ifelse\n"
  277.         "{currentfile eexec}exch( %endeexec)exch fcheckload\n"
  278.     };
  279.     resource kBinaryResType (kFHStartProcID + 6, sysHeap, purgeable) {
  280.  
  281.         "userdict/TrueDict known{TrueDict/version get 100 eq{TrueDict/render known not}{false}ifelse}{false}ifelse\n"
  282.         "{currentfile eexec}exch( %endeexec)exch fcheckload\n"
  283.     };
  284.     resource kBinaryResType (kFHStartProcID + 7, sysHeap, purgeable) {
  285.  
  286.         "userdict/TrueDict known{TrueDict/version get 100 eq{TrueDict/bander known not}{false}ifelse}{false}ifelse\n"
  287.         "{currentfile eexec}exch( %endeexec)exch fcheckload\n"
  288.     };
  289.  
  290.     resource kBinaryResType (kFHStartProcID + 8, sysHeap, purgeable) {
  291.  
  292.         "0000000000000000000000000000000000000000000000000000000000000000\r\n"
  293.         "0000000000000000000000000000000000000000000000000000000000000000\r\n"
  294.         "0000000000000000000000000000000000000000000000000000000000000000\r\n"
  295.         "0000000000000000000000000000000000000000000000000000000000000000\r\n"
  296.         "0000000000000000000000000000000000000000000000000000000000000000\r\n"
  297.         "0000000000000000000000000000000000000000000000000000000000000000\r\n"
  298.         "0000000000000000000000000000000000000000000000000000000000000000\r\n"
  299.         "0000000000000000000000000000000000000000000000000000000000000000\r\n"
  300.         "cleartomark\r\n"
  301.         " %endeexec\r\n"
  302.     };
  303.  
  304. #endif
  305.  
  306.  
  307. resource 'wstr' (kFHStartProcID + 9, sysHeap, purgeable) {
  308.     "%%EndProcSet\n"
  309. };
  310.  
  311. resource 'STR#' (kFHScriptResID, sysHeap, purgeable) {
  312.     {
  313.         /* kOurDictOnStack    */    "userdict /GXFontDict get begin\n";
  314.         /* kOurDictOffStack */    "end\n";
  315.         /* kFontName                */    "/%s\n";
  316.         /* kFindFontPop            */    "/%s findfont pop\n";
  317.         /* kReEncodeFont    */    "ReEncodeFont\n";
  318.         /* kFindFont                */    "/%s findfont\n";
  319.         /* kMakeComposite        */    "%d array astore /%s MakeCompositeFont\n";
  320.         /* kDoSave                    */    "DoSave\n";
  321.         /* kDoRestore                */    "DoRestore\n";
  322.         /* kDoRestoreSave        */    "DoRestore DoSave\n";
  323.  
  324.         /* kDebugShowText        */    "%----Next Text is: %s\n";
  325.         /* kDebugShowVM            */    "%----Previous scalerStream definition should use %d bytes of VM\n";
  326.         /* kDebugShowVMTotal*/    "%----Document Permanant fonts consumed %d bytes of VM\n";
  327.         /* kDebugShowVMLeft    */    "%----Remaining VM: %d bytes\n";
  328.  
  329.  
  330.         /* kIncludeResource    */    "%%IncludeResource: %q\n";
  331.         /* kBeginResource        */    "%%BeginResource: %q\n";
  332.         /* kEndResource            */    "%%EndResource\n";
  333.         /* kBoolean                    */    "%s\n";
  334.  
  335.         /* kDebugFontRef        */    "%----Font Reference was: %h\n";
  336.     };
  337. };
  338.  
  339.